ARAL Plan模块接口变更说明文档

修订日期 修订版本 修订内容 修订人
2026.01.27 v0.1 初始化文档 赵锦强
2026.07.16 v0.2 基于最新导出头文件更新Plan模块接口迁移关系 赵锦强

[TOC]

概述

本文档说明 robot_library_interface.hpp 中旧Plan模块接口迁移到最新导出接口后的变化情况。最新导出头文件中,原统一机器人接口中的规划能力被拆分到多个对象中:

  • Task类 (robot_task.hpp):负责任务状态、周期、全局笛卡尔运动约束、速度缩放、同步控制、停止/恢复和周期取点。
  • Planner类 (robot_planner.hpp):负责路径/速度/跟踪运动指令、路径预览、规划器容量、队列深度和暂停点等规划器级能力。
  • State类 (robot_state.hpp):负责机器人状态初始化,以及关节速度/加速度限制的设置与查询。
  • Model类 (robot_model.hpp):负责机器人模型级参数,例如功率限制。
  • Scene类 (robot_scene.hpp):负责创建和获取 PlannerTask 等接口对象。

本文档以 aral_export/include/aral/*.hpp 最新导出头文件为准。


接口变更列表

1. 初始化相关接口

功能 原函数 替代函数 备注
初始化规划器状态 tpInitiatePlanner(q, qd, qdd, status) State::rsInitiateRobotState(q, qd, qdd, t_w) + Task::tskSetTaskState(...) tpInitiatePlanner 从0.39版本废弃;新接口由State初始化机器人状态,任务状态由Task管理。
初始化规划器状态(含工具工件) tpInitiatePlanner(q, qd, qdd, tw, status) State::rsInitiateRobotState(q, qd, qdd, t_w) + Task::tskSetTaskState(...) 最新State初始化接口固定包含 ToolWorkpiece 参数。

2. 状态管理相关接口

功能 原函数 替代函数 备注
设置规划器状态 tpSetPlannerState Task::tskSetTaskState 移至Task类,状态类型从 PlannerStatus 改为 TaskState
清空轨迹执行队列 tpClearExecutionQueue Task::tskSetTaskState(TaskState::IDEL) 通过设置 IDEL 状态清空Task管理的规划器轨迹执行队列。
获取规划器状态 tpGetPlannerStatus Task::tskGetTaskState 移至Task类,返回类型从 int 改为 TaskState

3. 周期设置相关接口

功能 原函数 替代函数 备注
设置规划周期 tpSetPlannerCycle Task::tskSetCycle 移至Task类。
获取规划周期 tpGetPlannerCycle Task::tskGetCycle 移至Task类。

4. 速度/加速度限制和动态调速相关接口

功能 原函数 替代函数 备注
获取笛卡尔空间最大速度 tpGetMaximumCartesianVelocity Task::tskGetCartesianVelocityLimits(Array2d& cart_vel) 移至Task类,新接口通过输出参数返回,并返回错误码。
获取笛卡尔空间最大加速度 tpGetMaximumCartesianAcceleration Task::tskGetCartesianAccelerationLimits(Array2d& cart_acc) 移至Task类,新接口通过输出参数返回,并返回错误码。
获取关节空间最大速度 tpGetMaximumJointVelocity State::rsGetJointMaximumSpeed() 关节约束由State维护。Model::mdlGetJointMaximumVelocity() 仍可查询模型级关节最大速度。
获取关节空间最大加速度 tpGetMaximumJointAcceleration State::rsGetJointMaximumAcceleration() 关节加速度约束由State维护。
设置速度和加速度限制 tpSetVelocityAndAccelerationLimits Task::tskSetCartesianVelocityAccelerationLimits(...) + State::rsSetJointMaximumSpeed(...) + State::rsSetJointMaximumAcceleration(...) 旧接口同时设置关节和笛卡尔约束;新架构中笛卡尔约束由Task管理,关节约束由State管理。
缩放速度和加速度 tpScaleVelocityAndAcceleration Task::tskSetVelocityScaleFactor 新接口仅暴露速度缩放比例,不再暴露加速度缩放参数。
获取缩放比例 tpGetScaledFactor Task::tskGetVelocityScaledFactor 新接口仅返回速度缩放比例。
缩减任务规划 - Task::tskReducePlan 新增Task能力,用于按当前全局运动约束对轨迹执行队列重新规划。

5. 功率限制相关接口

功能 原函数 替代函数 备注
设置机器人功率限制 tpSetRobotPowerLimits Model::mdlSetRobotPowerLimits 迁移到Model类。
获取机器人功率限制 tpGetRobotPowerLimits Model::mdlGetRobotPowerLimits 迁移到Model类。

6. 容量和队列管理相关接口

功能 原函数 替代函数 备注
设置规划器容量 tpSetPlannerCapacity Planner::tpSetPlannerCapacity 移至Planner类,接口语义保持一致。
获取规划器容量 tpGetPlannerCapacity Planner::tpGetPlannerCapacity 移至Planner类,接口语义保持一致。
获取规划器队列深度 tpGetPlannerDepth Planner::tpGetPlannerDepth 移至Planner类,接口语义保持一致。

7. 运动时长相关接口

功能 原函数 替代函数 备注
获取指定路径段运动时长 tpGetMoveDuration Planner::tpGetMoveDuration 移至Planner类,接口语义保持一致。
获取规划器剩余运动时长 tpGetPlannerLeftMoveDuration Planner::tpGetPlannerLeftMoveDuration 规划器级剩余时长查询。
获取任务剩余运动时长 - Task::tskGetLeftMoveDuration 新增任务级剩余运动时长查询。

8. 暂停点相关接口

功能 原函数 替代函数 备注
获取暂停点信息 tpGetPausedPoint(TrajectoryPoint&, ik_eps) Planner::tpGetPausedPoint(TrajectoryPoint&) 移至Planner类,移除 ik_eps 参数。

9. 路径点获取相关接口

功能 原函数 替代函数 备注
获取未来时刻的路点信息 tpGetPathPointAtGivenTime Planner::tpGetPathPointAtGivenTime 移至Planner类,接口语义保持一致。
获取路径上指定比例的路径点 tpGetPathPointAtGivenPathLengthRatio Planner::tpGetPathPointAtGivenPathLengthRatio 移至Planner类,接口语义保持一致。
按分辨率长度或规划周期预览路径点 tpGetPathPointAtGivenResolutionLength Planner::tpGetPathPointAtGivenResolutionLength 最新接口包含 vel_preview 参数;vel_preview=true 时按规划周期预览,s 参数无效。

10. 轨迹更新相关接口

功能 原函数 替代函数 备注
更新规划器状态(无输出) tpUpdateCycle(cycle) 已删除 从0.39版本废弃。
更新规划器状态并输出轨迹点 tpUpdateCycle(cycle, TrajectoryPoint&) Task::tskUpdateCycle(cycle, std::vector<TrajectoryPoint>&, PlannerHandle&) 移至Task类;支持多机器人输出,轨迹点输出改为 std::vector<TrajectoryPoint>,增加 failed_planner 用于错误定位。

11. 运动添加和跟踪相关接口

功能 原函数 替代函数 备注
目标运动跟踪(含工具工件) tpTargetMotionTracking(..., ToolWorkpiece, ...) Planner::tpTargetMotionTracking(...) 旧含 ToolWorkpiece 重载从0.40版本废弃;最新接口移至Planner类并移除 ToolWorkpiece 参数。
目标运动跟踪 tpTargetMotionTracking Planner::tpTargetMotionTracking 移至Planner类。
轨迹跟踪(含工具工件) tpTrajectoryTracking(..., ToolWorkpiece, ...) Planner::tpTrajectoryTracking(...) 旧含 ToolWorkpiece 重载从0.40版本废弃;最新接口移至Planner类并移除 ToolWorkpiece 参数。
轨迹跟踪 tpTrajectoryTracking Planner::tpTrajectoryTracking 移至Planner类。
添加直线运动(含工具工件) tpAddPositionLine(..., ToolWorkpiece) Planner::tpAddPositionLine(...) 旧含 ToolWorkpiece 重载从0.40版本废弃;最新接口移至Planner类并移除 ToolWorkpiece 参数。
添加直线运动 tpAddPositionLine Planner::tpAddPositionLine 移至Planner类;双机器人同时走 moveJ 时,可按Planner创建时的主从角色整体规划。
添加多点运动(含工具工件) tpAddPoints(..., ToolWorkpiece) Planner::tpAddPoints(...) 旧含 ToolWorkpiece 重载从0.40版本废弃;最新接口移至Planner类并移除 ToolWorkpiece 参数。
添加多点运动 tpAddPoints Planner::tpAddPoints 移至Planner类。
生成无碰撞路径(含工具工件) tpGenerateCollisionFreePoints(..., ToolWorkpiece, out_points) Planner::tpGenerateCollisionFreePoints(..., out_points) 旧含 ToolWorkpiece 重载从0.40版本废弃;最新接口移至Planner类并移除 ToolWorkpiece 参数。
生成无碰撞路径 tpGenerateCollisionFreePoints Planner::tpGenerateCollisionFreePoints 移至Planner类;最新签名包含 in_pointspath_propertyobstacle_avoidance_paramsout_points
添加速度运动(含工具工件) tpAddVelocityLine(..., ToolWorkpiece) Planner::tpAddVelocityLine(...) 旧含 ToolWorkpiece 重载从0.40版本废弃;最新接口移至Planner类并移除 ToolWorkpiece 参数。
添加速度运动 tpAddVelocityLine Planner::tpAddVelocityLine 移至Planner类。

12. 恢复和停止相关接口

功能 原函数 替代函数 备注
恢复运动(含工具工件) tpResume(..., ToolWorkpiece) Planner::tpSetResumePoint(...) + Task::tskResume() 旧含 ToolWorkpiece 重载从0.40版本废弃;恢复点由Planner设置,恢复动作由Task执行。
恢复运动 tpResume(from, path_property, move_property) Planner::tpSetResumePoint(...) + Task::tskResume() 新架构将“设置恢复起点”和“恢复任务执行”拆分;Task::tskResume() 无参数。
设置恢复点 - Planner::tpSetResumePoint 新增Planner接口,用于设置恢复起始点。
停止运动 tpStop Task::tskStop 移至Task类,参数为 StopTypeacc_ratiobuffSize
终止交融/结束路径 tpSetEndPath Planner::tpSetEndPath 移至Planner类;用于对插入到规划器的路径进行速度规划生成轨迹段,该接口不会中断动态交融。

13. 同步控制相关接口(新增)

功能 原函数 替代函数 备注
开始定义同步运动组 - Task::tskWaitSyncMove 在Task层创建一个未就绪的同步组,用于记录后续各Planner插入的同步路径ID。
完成同步运动组定义 - Task::tskSyncMoveOn 收集 tskWaitSyncMove 之后各Planner新增的同步路径ID,统计各Planner同步段总时长,并按最长时长计算采样周期缩放系数。

同步控制不是暂停Planner自动规划后再触发统一规划,而是在 tskWaitSyncMovetskSyncMoveOn 之间标记一组需要同步的路径段。tskSyncMoveOn 以该组中各Planner的路径总时长为依据,计算周期缩放比例;后续 Task::tskUpdateCycle 取点时将缩放比例下发到对应Planner,通过采样时间缩放实现同启同停的时间同步。默认情况下,不调用同步指令时,Task按普通模式取点,不进行同步组时间缩放。


14. 摆动/摆焊相关接口说明

最新 robot_planner.hpp 导出接口中未包含 tpSetWeaveParameterstpUpdateWeaveParameterstpAddWeavePath。这些接口仍可在旧统一接口 robot_library_interface.hpp 中看到:

功能 旧统一接口 最新Planner导出状态 备注
设置摆动参数 tpSetWeaveParameters 当前 Planner 导出接口未包含 如需继续使用或导出到Planner,应同步确认接口头文件。
更新摆动参数 tpUpdateWeaveParameters 当前 Planner 导出接口未包含 如需继续使用或导出到Planner,应同步确认接口头文件。
添加摆焊路径 tpAddWeavePath 当前 Planner 导出接口未包含 旧统一接口中仍有该声明,最新Planner头文件未导出。

主要变更总结

架构变化

  1. 职责拆分:原 robot_library_interface.hpp 中Plan相关能力不再由单一接口承载。

    • Task:任务状态、周期、笛卡尔速度/加速度限制、速度缩放、同步、停止/恢复和周期取点。
    • Planner:路径添加、速度运动、目标/轨迹跟踪、路径预览、容量/队列、暂停点和恢复点。
    • State:机器人状态初始化、关节速度/加速度限制。
    • Model:机器人模型级参数,例如功率限制。
  2. 创建方式变化PlannerTaskScene 创建并管理。

    • Scene::rlCreateRobotPlanner(...) 创建Planner。
    • Scene::rlGetRobotPlanner(...) 获取Planner。
    • Scene::rlCreateRobotTask(...) 创建Task。
  3. 参数简化:大部分规划接口移除了 ToolWorkpiece 参数;工具/工件相关信息由状态、模型或路径属性相关数据统一维护。

  4. 多机器人支持增强Task::tskUpdateCycle 输出 std::vector<TrajectoryPoint>,可一次返回多个机器人轨迹点,并通过 failed_planner 定位失败的规划器。

接口命名变化

  • tp* 前缀的旧接口按职责迁移:
    • 规划器级路径/跟踪/预览能力 → Planner::tp*
    • 任务级状态/取点/同步/停止/恢复能力 → Task::tsk*
    • 状态初始化和关节约束 → State::rs*
    • 模型级功率限制 → Model::mdl*

功能增强

  1. 同步控制:新增 Task::tskWaitSyncMoveTask::tskSyncMoveOn,通过同步路径ID分组、统计各Planner同步段运动时长,并对采样周期进行缩放,实现多Planner同启同停的时间同步。
  2. 错误定位Task::tskUpdateCycle 增加 failed_planner 输出参数,便于多机器人场景定位错误来源。
  3. 恢复流程拆分:通过 Planner::tpSetResumePoint 设置恢复起点,再由 Task::tskResume 恢复执行。
  4. 任务级重规划:新增 Task::tskReducePlan,用于按当前全局运动约束对轨迹执行队列重新规划。

删除或不再暴露的能力

  1. tpUpdateCycle(cycle) 无输出版本从0.39版本废弃,最新接口中不再使用。
  2. 加速度缩放参数不再由Task新接口直接暴露,仅保留速度缩放 Task::tskSetVelocityScaleFactor
  3. 旧统一接口中的摆动/摆焊接口未出现在最新 robot_planner.hpp 导出接口中;如需作为Planner能力使用,需要先同步确认导出头文件。

results matching ""

    No results matching ""